#include<iostream>
#include<unistd.h>
#include<signal.h>
using namespace std;

int main()
{
    //创建信号集
    sigset_t set,oset;

    //初始化信号集
    sigemptyset(&set);
    sigemptyset(&oset);

    //阻塞2号信号
    sigaddset(&set,2); //2号信号被记录

    //设置当前进程的屏蔽信号集
    sigprocmask(SIG_BLOCK,&set,&oset);

    //死循环
    int n =0;
    while(true)
    {
        if(n == 5)

        // 采用SIG_SETMASK 的方式，覆盖进程的 block 表
        {
            sigprocmask(SIG_SETMASK,&oset,nullptr); //不接受进程的block表
        }

         cout << "我是一个进程，我正在运行" << endl;
        n++;
        sleep(1);
    }

    return 0;
}